home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 1994
/
MacHack 1994.toast
/
MacHack™94
/
Talks & Papers
/
Timothy Knox
/
yerk 3.66
/
Module source
/
sysenv
< prev
next >
Wrap
Text File
|
1994-06-24
|
3KB
|
120 lines
\ 9.26.90 rfl added other imports to check machine attributes
\ 10.25.90 rfl added mfTopMem
\ 11.6.90 rfl added classic, IIsi, and LC
\ 1.11.91 rfl added mactype
\ 8.13.92 rfl uget: sysvref
\ 12.7.92 rfl added pb 180 and fixed error in system printout
:module env
create getSys popD0 popA0 " SysEnvirons" asmCall pushA0 pushD0 next,
:CLASS system <super Object
int version
int type
int sysVers
int processor
int fpu&color
int keyboard
int atdrvr
int sysVref
20 bytes extra
int request
:M putRequest: put: request ;M
:M get: (abs) get: request getSys swap -base swap extend ;M
:M classinit: 2 put: request ;M
:M getType: get: type ;M
:M getVers: get: sysVers ;M
:M getCPU: get: processor ;M
:M getFPU: get: fpu&color $ 100 / ;M
:M getColor: get: fpu&color $ ff and ;M
:M getVref: get: sysVref ;M
:M getAppleTalk: get: atdrvr IF 1 ELSE 0 THEN ;M
:M macType: get: type ;M
:M type: get: type
." type = "
CASE
0 OF ." unknown" ENDOF
1 OF ." 512KE" ENDOF
2 OF ." Mac+" ENDOF
3 OF ." SE" ENDOF
4 OF ." MacII" ENDOF
5 OF ." MacIIx" ENDOF
6 OF ." MacIIcx" ENDOF
7 OF ." SE030" ENDOF
8 OF ." Portable" ENDOF
9 OF ." MacIIci" ENDOF
11 OF ." MacIIfx" ENDOF
15 OF ." Classic" ENDOF
16 OF ." IIsi" ENDOF
17 OF ." LC" ENDOF
18 OF ." Quadra 900" ENDOF
19 OF ." Powerbook 170" ENDOF
20 OF ." Quadra 700" ENDOF
21 OF ." Classic II" ENDOF
22 OF ." Powerbook 100" ENDOF
23 OF ." Powerbook 140" ENDOF
31 OF ." Powerbook 180" ENDOF
ENDCASE
cr ;M
:M system: ." system = " base hex
get: sysVers dup $ ff00 and $ 100 / $ 100 * swap $ ff and +
0 <# # # ascii . hold #s #> type cr -> base ;M
:M cpu: ." CPU = "
get: processor
CASE
0 OF ." unknown" ENDOF
1 OF ." 68000" ENDOF
2 OF ." 68010" ENDOF
3 OF ." 68020" ENDOF
4 OF ." 68030" ENDOF
5 OF ." 68040" ENDOF
ENDCASE cr ;M
:M fpu: getFPU: self 0= IF ." NOT " THEN ." With CoProcessor" cr ;M
:M color: getColor: self 0= IF ." NOT " THEN ." With Color" cr ;M
:M keyboard: ." keyboard = " get: keyboard
CASE
0 OF ." Mac+ with keypad" ENDOF
1 OF ." Mac" ENDOF
2 OF ." Mac with keypad" ENDOF
3 OF ." Mac+" ENDOF
4 OF ." Apple Extended" ENDOF
5 OF ." ADBK standard" ENDOF
6 OF ." Portable" ENDOF
7 OF ." Portable (ISO)" ENDOF
8 OF ." Standard (ISO)" ENDOF
9 OF ." Extended (ISO)" ENDOF
10 OF ." Apple II" ENDOF
11 OF ." Apple II (ISO)" ENDOF
12 OF ." Powerbook" ENDOF
13 OF ." Powerbook (ISO)" ENDOF
ENDCASE cr ;M
:M AppleTalk: ." AppleTalk = "
get: atdrvr -dup IF . ELSE ." not loaded" THEN cr ;M
:M sysVref: ." System Folder WD = " uget: sysVref . cr ;M
:M print: get: self swap drop
CASE
-5500 OF ." System earlier than 4.1" ENDOF
-5501 OF ." Bad version number" ENDOF
-5502 OF ." Requested Version unavailable" ENDOF
0 OF type: self system: self cpu: self
fpu: self color: self keyboard: self
appletalk: self sysVref: self ENDOF
ENDCASE ;M
;CLASS
system sysEnv
: .sys print: sysenv wneAvail IF 0 call mfTopMem ." RAM = " . ." bytes" THEN cr ;
: hasColor get: sysenv 2drop getColor: sysenv ;
: hasFPU get: sysenv 2drop getFPU: sysenv ;
: appleTalkOn get: sysenv 2drop getAppleTalk: sysenv ;
: mac? get: sysenv 2drop macType: sysenv ;
: getenv get: sysEnv 2drop sysEnv ;
;Module